<?php
/*
 * @Date: 2021-02-03 22:10:31
 * @名称: 日志 操作控制器
 * @版本: 0.01
 * @作者: 初雪桜
 * @邮箱: 202184199@qq.com
 * @最后编辑: 初雪桜
 * @LastEditTime: 2021-03-01 20:07:36
 * @FilePath: /Site/app/useradmin/controller/DataBaseController/LogController.php
 */

namespace app\useradmin\controller\DataBaseController;

use app\BaseController;
use think\facade\Db;

class LogController extends BaseController
{

    /**
     * @方法名: 插入author_and_chinese_team的日志
     * @作者: 初雪桜
     * @信息: 插入author_and_chinese_team_operation
     * @param String $book_id 书籍id
     * @param String $user_id 用户id
     * @param String $new_user_id 新用户id
     * @param String $_id 操作id
     * @param String $msg 信息
     * @param String $state 执行状态 0 带执行 1已执行 2取消执行
     * @param String $apply_user_id 申请人 谁申请的
     * @param String $add_time 添加时间
     * @param String $implement_time 执行时间
     * @param String $implement_user_id 申请人 谁申请的
     * @return {*}
     */
    public function insert_AACT_log($book_id, $user_id, $new_user_id, $_id, $msg, $state, $apply_user_id, $ExtendedParameters = [])
    {
        if ($book_id == null || $user_id == null || $new_user_id == null || $_id == null || $msg == null || $state === null || $apply_user_id == null) {
            return json_decode(errorJsonReturn(
                "必要参数丢失",
                [
                    "book_id" => ($book_id == null),
                    "user_id" => ($user_id == null),
                    "new_user_id" => ($new_user_id == null),
                    "_id" => ($_id == null),
                    "msg" => ($msg == null),
                    "state" => ($state == null),
                    "apply_user_id" => ($apply_user_id == null),
                ]
            )->getContent(), true);
        }
        if (isset($ExtendedParameters['implement_time'])) { //判断执行时间是否存在
            $implement_time = $ExtendedParameters['implement_time'];
        } else {
            $implement_time = null;
        }
        if (isset($ExtendedParameters['implement_user_id'])) { //判断执行人是否存在
            $implement_user_id = $ExtendedParameters['implement_user_id'];
        } else {
            $implement_user_id = null;
        }
        $insertJson = [
            "book_id" => $book_id,
            #书籍id
            "user_id" => $user_id,
            #用户id
            "new_user_id" => $new_user_id,
            #新用户id
            "_id" => $_id,
            #操作id
            "msg" => $msg,
            #信息
            "state" => $state,
            #执行状态 0 带执行 1已执行 2取消执行
            "add_time" => date("Y-m-d H:i:s"),
            #添加时间
            "implement_time" =>  $implement_time,
            #执行时间
            "implement_user_id" =>  $implement_user_id,
            #执行用户id 谁执行的
            "apply_user_id" => $apply_user_id,
            #申请人 谁申请的
        ];

        try {
            Db::table('author_and_chinese_team_operation')
                ->insert($insertJson);
            return json_decode(successJsonReturn()->getContent(), true);
        } catch (\Throwable $th) {
            sendMail(config("GlobalSettings.WebmasterEmail"), '数据库操作发生意外错误', $th, []);
            return json_decode(errorJsonReturn()->getContent(), true);
        }
    }
    /**
     * @方法名: 审核author_and_chinese_team_operation
     * @作者: 初雪桜
     * @信息: 操作author_and_chinese_team_operation表
     * @param String $book_id 书籍id
     * @param String $_id 项目id
     * @param String $state 要修改的状态
     * @param String $user_id 自己的用户id
     * @return Json
     */
    public function update_aact_log($book_id, $_id, $state, $user_id)
    {
        $updateState = Db::table('author_and_chinese_team_operation')
            ->where([
                "book_id" => $book_id,
                "_id" =>  $_id,
            ])
            ->update([
                "state" => $state,
                "implement_user_id" => $user_id,
                "implement_time" => date("Y-m-d H:i:s"),

            ]);
        if ($updateState) {
            return json_decode(successJsonReturn()->getContent(), true);
        } else {
            return json_decode(errorJsonReturn()->getContent(), true);
        }
    }
}
